home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 1
/
Nebula One.iso
/
Financial
/
Stopwatch2.3
/
Source
/
Expense.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
2KB
|
96 lines
/*
* For legal stuff see the file COPYRIGHT
*/
#import <stdio.h>
#import <stdlib.h>
#import "Expense.h"
extern void freeAndCopy( char **ptr, const char *str );
extern char *NXCopyStringBuffer(const char *buffer);
@implementation Expense
- init:(const char *)date
description:(const char *)desc
amount:(const float)amt
{
[self setDateString:date];
[self setDescription:desc];
amount = amt;
return self;
}
- (void) freeDesc
{
if ( description ) {
free( description );
description = NULL;
}
}
- free
{
[self freeDesc];
return [super free];
}
- setAmount:(float)value
{
amount = value;
return self;
}
- setDateString:(const char *)str
{
freeAndCopy( &dateString, str );
return self;
}
- setDescription:(const char *)desc
{
[self freeDesc];
description = NXCopyStringBuffer(desc);
return self;
}
- (const char *)dateString
{
return dateString;
}
- (const char *)description
{
return description;
}
- (float)amount
{
return amount;
}
/*
* For use in comparisons, convert date such as 11/21/93 to a
* single integer 932111. THIS SHOULD BE CACHED! (TBD)
*/
- (int)dateValue
{
int day, month, year;
sscanf( dateString, "%d/%d/%d", &month, &day, &year );
return ( year * 10000 + month * 100 + day );
}
- read:(NXTypedStream *) stream
{
NXReadTypes( stream, "**f", &description, &dateString, &amount );
return self;
}
- write:(NXTypedStream *) stream
{
NXWriteTypes( stream, "**f", &description, &dateString, &amount );
return self;
}
@end